home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / m2gem106.lzh / CRYSTAL1.06 / SRC / CRYSTAL / VQUERY.DEF < prev    next >
Encoding:
Modula Definition  |  1993-07-31  |  10.4 KB  |  340 lines

  1. DEFINITION MODULE VQuery;
  2.  
  3. (*
  4. VDI Query Functions.
  5.  
  6. UK __DATE__ __TIME__
  7. *)
  8.  
  9. (*DEF_SWITCHES*)
  10.  
  11. FROM VDI        IMPORT RGBList,XY;
  12. FROM PORTAB     IMPORT UNSIGNEDWORD,SIGNEDWORD,ANYWORD,ANYBYTE,ANYPOINTER,
  13.                        UNSIGNEDLONG,ANYTYPE;
  14. FROM VAttribute IMPORT WritingModes,LineTypes,LineEnds,MarkerTypes,
  15.                        TextEffect,
  16.                        HorizontalAlignments,VerticalAlignments,
  17.                        Interiors;
  18. FROM VInput     IMPORT Devices,InputModes;
  19.  
  20. (* [V]DI: [Ext]e[n]de[d] [Q]uery Function **********************************)
  21.  
  22. PROCEDURE VQExtnd(    Handle : UNSIGNEDWORD;
  23.                       Flag   : BOOLEAN;
  24.                   VAR WorkOut: ARRAY OF UNSIGNEDWORD);
  25.  
  26. (* [V]DI: [Q]uery [Color] Representation ***********************************)
  27.  
  28. PROCEDURE VQColor(    Handle: UNSIGNEDWORD;
  29.                       Color : UNSIGNEDWORD;
  30.                       Flag  : BOOLEAN;
  31.                   VAR RGB   : RGBList): UNSIGNEDWORD;
  32.  
  33. (* [V]DI: [Q]uery Current [L]ine [Attributes] ******************************)
  34.  
  35. TYPE LineAttributes = RECORD
  36. #if linear
  37. #if fill_byte
  38.                         FillByte1: ANYBYTE;
  39. #endif
  40. #endif
  41.                         Type  : LineTypes;
  42. #if intel
  43. #if fill_byte
  44.                         FillByte1: ANYBYTE;
  45. #endif
  46. #endif
  47.                         Color : UNSIGNEDWORD;
  48. #if linear
  49. #if fill_byte
  50.                         FillByte2: ANYBYTE;
  51. #endif
  52. #endif
  53.                         Mode  : WritingModes;
  54. #if intel
  55. #if fill_byte
  56.                         FillByte2: ANYBYTE;
  57. #endif
  58. #endif
  59.                         Width : UNSIGNEDWORD;
  60. #if linear
  61. #if fill_byte
  62.                         FillByte3: ANYBYTE;
  63. #endif
  64. #endif
  65.                         Begin : LineEnds;
  66. #if intel
  67. #if fill_byte
  68.                         FillByte3: ANYBYTE;
  69. #endif
  70. #endif
  71. #if linear
  72. #if fill_byte
  73.                         FillByte4: ANYBYTE;
  74. #endif
  75. #endif
  76.                         End   : LineEnds;
  77. #if intel
  78. #if fill_byte
  79.                         FillByte4: ANYBYTE;
  80. #endif
  81. #endif
  82.                       END;
  83.  
  84. PROCEDURE VQLAttributes(    Handle: UNSIGNEDWORD;
  85.                         VAR Attrib: ARRAY OF ANYTYPE);
  86.  
  87. (* [V]DI: [Q]uery Current Poly[M]arker [Attributes] ************************)
  88.  
  89. TYPE MarkerAttributes = RECORD
  90. #if linear
  91. #if fill_byte
  92.                           FillByte1: ANYBYTE;
  93. #endif
  94. #endif
  95.                           Type  : MarkerTypes;
  96. #if intel
  97. #if fill_byte
  98.                           FillByte1: ANYBYTE;
  99. #endif
  100. #endif
  101.                           Color : UNSIGNEDWORD;
  102. #if linear
  103. #if fill_byte
  104.                           FillByte2: ANYBYTE;
  105. #endif
  106. #endif
  107.                           Mode  : WritingModes;
  108. #if intel
  109. #if fill_byte
  110.                           FillByte2: ANYBYTE;
  111. #endif
  112. #endif
  113.                           Width : UNSIGNEDWORD;
  114.                           Height: UNSIGNEDWORD;
  115.                         END;
  116.  
  117. PROCEDURE VQMAttributes(    Handle: UNSIGNEDWORD;
  118.                         VAR Attrib: ARRAY OF ANYTYPE);
  119.  
  120. (* [V]DI: [Q]uery Current [F]ill Area [Attributes] *************************)
  121.  
  122. TYPE FillAttributes = RECORD
  123. #if linear
  124. #if fill_byte
  125.                         FillByte1: ANYBYTE;
  126. #endif
  127. #endif
  128.                         Interior : Interiors;
  129. #if intel
  130. #if fill_byte
  131.                         FillByte1: ANYBYTE;
  132. #endif
  133. #endif
  134.                         Color    : UNSIGNEDWORD;
  135.                         Fill     : UNSIGNEDWORD;
  136. #if linear
  137. #if fill_byte
  138.                         FillByte2: ANYBYTE;
  139. #endif
  140. #endif
  141.                         Mode     : WritingModes;
  142. #if intel
  143. #if fill_byte
  144.                         FillByte2: ANYBYTE;
  145. #endif
  146. #endif
  147. #if linear
  148. #if fill_byte
  149.                         FillByte3: ANYBYTE;
  150. #endif
  151. #endif
  152.                         Perimeter: BOOLEAN;
  153. #if intel
  154. #if fill_byte
  155.                         FillByte3: ANYBYTE;
  156. #endif
  157. #endif
  158.                       END;
  159.  
  160. PROCEDURE VQFAttributes(    Handle: UNSIGNEDWORD;
  161.                         VAR Attrib: ARRAY OF ANYTYPE);
  162.  
  163. (* [V]DI: [Q]uery Current Graphic [T]ext [Attributes] **********************)
  164.  
  165. TYPE TextAttributes = RECORD
  166.                         Font      : UNSIGNEDWORD;
  167.                         Color     : UNSIGNEDWORD;
  168.                         Rotation  : UNSIGNEDWORD;
  169. #if linear
  170. #if fill_byte
  171.                         FillByte1: ANYBYTE;
  172. #endif
  173. #endif
  174.                         Horizontal: HorizontalAlignments;
  175. #if intel
  176. #if fill_byte
  177.                         FillByte1: ANYBYTE;
  178. #endif
  179. #endif
  180. #if linear
  181. #if fill_byte
  182.                         FillByte2: ANYBYTE;
  183. #endif
  184. #endif
  185.                         Vertical  : VerticalAlignments;
  186. #if intel
  187. #if fill_byte
  188.                         FillByte2: ANYBYTE;
  189. #endif
  190. #endif
  191. #if linear
  192. #if fill_byte
  193.                         FillByte3: ANYBYTE;
  194. #endif
  195. #endif
  196.                         Mode      : WritingModes;
  197. #if intel
  198. #if fill_byte
  199.                         FillByte3: ANYBYTE;
  200. #endif
  201. #endif
  202.                         Width     : UNSIGNEDWORD;
  203.                         Height    : UNSIGNEDWORD;
  204.                         CellWidth : UNSIGNEDWORD;
  205.                         CellHeight: UNSIGNEDWORD;
  206.                       END;
  207.  
  208. PROCEDURE VQTAttributes(    Handle: UNSIGNEDWORD;
  209.                         VAR Attrib: ARRAY OF ANYTYPE);
  210.  
  211. (* [V]DI: [Q]uery [T]ext [Extent] ******************************************)
  212.  
  213. PROCEDURE VQTExtent(    Handle: UNSIGNEDWORD;
  214.                     VAR String: ARRAY OF CHAR;
  215.                     VAR Extent: ARRAY OF XY);
  216.  
  217. (* [V]DI: [Q]uery ([T]ext) Character Cell [Width] **************************)
  218.  
  219. PROCEDURE VQTWidth(    Handle     : UNSIGNEDWORD;
  220.                        Char       : CHAR;
  221.                    VAR CellWidth  : UNSIGNEDWORD;
  222.                    VAR LeftOffset : UNSIGNEDWORD;
  223.                    VAR RightOffset: UNSIGNEDWORD): SIGNEDWORD;
  224.  
  225. (* [V]DI: [Q]uery ([T]ext) Face [Name] And Index ***************************)
  226.  
  227. PROCEDURE VQTName(   Handle: UNSIGNEDWORD;
  228.                      FontNo: UNSIGNEDWORD;
  229.                  VAR Name  : ARRAY OF CHAR;
  230.                  VAR VecFnt: BOOLEAN): UNSIGNEDWORD;
  231.  
  232. (* [V]DI: [Q]uery [Cell] [Array] *******************************************)
  233.  
  234. PROCEDURE VQCellArray(    Handle   : UNSIGNEDWORD;
  235.                       VAR PXY      : ARRAY OF XY;
  236.                           RowLength: UNSIGNEDWORD;
  237.                           NumRows  : UNSIGNEDWORD;
  238.                       VAR ElUsed   : UNSIGNEDWORD;
  239.                       VAR RowsUsed : UNSIGNEDWORD;
  240.                       VAR Status   : BOOLEAN;
  241.                       VAR ColArray : ARRAY OF ANYWORD);
  242.  
  243. (* [V]DI: [Q]uery [In]put [Mode] *******************************************)
  244.  
  245. PROCEDURE VQInMode(    Handle   : UNSIGNEDWORD;
  246.                        DevType  : Devices;
  247.                    VAR InputMode: InputModes);
  248.  
  249. (* [V]DI: [Q]uery ([T]ext) Current [Font] [Info]rmation ********************)
  250.  
  251. PROCEDURE VQTFontInfo(    Handle   : UNSIGNEDWORD;
  252.                       VAR LowADE   : UNSIGNEDWORD;
  253.                       VAR HighADE  : UNSIGNEDWORD;
  254.                       VAR Distances: ARRAY OF UNSIGNEDWORD;
  255.                       VAR MaxWidth : UNSIGNEDWORD;
  256.                       VAR Effects  : ARRAY OF UNSIGNEDWORD);
  257.  
  258. (* [V]DI: [Q]uery [Justified] [T]ext ***************************************)
  259.  
  260. PROCEDURE VQTJustified(    Handle   : UNSIGNEDWORD;
  261.                            X        : XY;
  262.                            Y        : XY;
  263.                        VAR String   : ARRAY OF CHAR;
  264.                            Length   : UNSIGNEDWORD;
  265.                            WordSpace: BOOLEAN;
  266.                            CharSpace: BOOLEAN;
  267.                        VAR Offsets  : ARRAY OF UNSIGNEDWORD);
  268.  
  269. (* [V]DI: [Q]uery Outline Font [T]ext [Advance] Placement Vector ***********)
  270.  
  271. PROCEDURE VQTAdvance(    Handle: UNSIGNEDWORD;
  272.                          Ch    : CHAR;
  273.                      VAR XAdv  : UNSIGNEDWORD;
  274.                      VAR YAdv  : UNSIGNEDWORD;
  275.                      VAR XRem  : UNSIGNEDWORD;
  276.                      VAR YRem  : UNSIGNEDWORD);
  277.  
  278. PROCEDURE VQTAdvance32(    Handle: UNSIGNEDWORD;
  279.                            Ch    : CHAR;
  280.                        VAR XAdv  : UNSIGNEDLONG;
  281.                        VAR YAdv  : UNSIGNEDLONG);
  282.  
  283. (* [V]DI: [Q]uery ([T]ext) [Dev]ice Status [Info]rmation *******************)
  284.  
  285. PROCEDURE VQTDevInfo(    Handle: UNSIGNEDWORD;
  286.                          Device: UNSIGNEDWORD;
  287.                      VAR Exists: BOOLEAN;
  288.                      VAR DevStr: ARRAY OF CHAR);
  289.  
  290. (* [V]DI: ([Q]uery [T]ext) [Get] Character Mapping [Table] *****************)
  291.  
  292. PROCEDURE VQTGetTable(    Handle: UNSIGNEDWORD;
  293.                       VAR Map   : ANYPOINTER);
  294.  
  295. (* [V]DI: ([Q]uery [T]ext) [Cache] [Size] **********************************)
  296.  
  297. PROCEDURE VQTCacheSize(    Handle: UNSIGNEDWORD;
  298.                            Cache : UNSIGNEDWORD;
  299.                        VAR Size  : UNSIGNEDLONG);
  300.  
  301. (* [V]DI: [Q]uery Outline [F]ont [T]ext [Extent] ***************************)
  302.  
  303. PROCEDURE VQTFExtent(    Handle: UNSIGNEDWORD;
  304.                      VAR String: ARRAY OF CHAR;
  305.                      VAR Extent: ARRAY OF XY);
  306.  
  307. (* [V]DI: [Q]uery Outline Font [T]ext [Font] [Header] **********************)
  308.  
  309. PROCEDURE VQTFontHeader(    Handle: UNSIGNEDWORD;
  310.                         VAR Buffer: ARRAY OF ANYTYPE;
  311.                         VAR Path  : ARRAY OF CHAR);
  312.  
  313. (* [V]DI: [Q]uery Outline Font [T]ext [Track] [Kern]ing] Information *******)
  314.  
  315. PROCEDURE VQTTrackKern(    Handle: UNSIGNEDWORD;
  316.                        VAR X     : UNSIGNEDLONG;
  317.                        VAR Y     : UNSIGNEDLONG);
  318.  
  319. (* [V]DI: [Q]uery Outline Font [T]ext [Pair] [Kern]ing Information *********)
  320.  
  321. PROCEDURE VQTPairKern(    Handle: UNSIGNEDWORD;
  322.                           Ch1   : CHAR;
  323.                           Ch2   : CHAR;
  324.                       VAR X     : UNSIGNEDLONG;
  325.                       VAR Y     : UNSIGNEDLONG);
  326.  
  327. (* [V]DI: ([Q]uery Outline Font [T]ext) [Get] Character [Bitmap] [Info]rmation *)
  328.  
  329. PROCEDURE VGetBitmapInfo(    Handle: UNSIGNEDWORD;
  330.                              Ch    : CHAR;
  331.                          VAR AdvX  : UNSIGNEDLONG;
  332.                          VAR AdvY  : UNSIGNEDLONG;
  333.                          VAR XOff  : UNSIGNEDLONG;
  334.                          VAR YOff  : UNSIGNEDLONG;
  335.                          VAR Width : UNSIGNEDWORD;
  336.                          VAR Height: UNSIGNEDWORD;
  337.                          VAR Bitmap: ANYPOINTER);
  338.  
  339. END VQuery.
  340.